package com.zb.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @Author WEN
 * @Date 2023/8/3 0003
 **/
@Data
@ApiModel("商品品牌对象")
public class BrandVo {
    @ApiModelProperty(value = "品牌ID，新增不必传，修改必传")
    private Long id;

    @NotBlank(message = "品牌名称不能为空")
    @Length(max = 20, message = "品牌名称字符长度限制20个以内")
    @ApiModelProperty(value = "品牌名称", required = true)
    private String name;

    @Length(max = 60, message = "品牌编码字符长度限制60个以内")
    @ApiModelProperty(value = "品牌编码")
    private String code;

    @Length(max = 30, message = "品牌电话字符长度限制30个以内")
    @ApiModelProperty(value = "品牌电话")
    private String telephone;

    @Length(max = 200, message = "公司名称字符长度限制200个以内")
    @ApiModelProperty(value = "公司名称")
    private String company;

    @Length(max = 50, message = "公司地址-省字符长度限制50个以内")
    @ApiModelProperty(value = "公司地址-省")
    private String province;

    @Length(max = 50, message = "公司地址-市字符长度限制50个以内")
    @ApiModelProperty(value = "公司地址-市")
    private String city;

    @Length(max = 50, message = "公司地址-县/区字符长度限制50个以内")
    @ApiModelProperty(value = "公司地址-县/区")
    private String area;

    @Length(max = 50, message = "公司地址-镇字符长度限制50个以内")
    @ApiModelProperty(value = "公司地址-镇")
    private String town;

    @Length(max = 200, message = "公司地址-详细地址字符长度限制200个以内")
    @ApiModelProperty(value = "公司地址-详细地址")
    private String address;

    @Length(max = 300, message = "品牌标志路径地址字符长度限制300个以内")
    @ApiModelProperty(value = "品牌标志路径")
    private String mark;

    @Length(max = 300, message = "公众号字符长度限制300个以内")
    @ApiModelProperty(value = "公众号")
    private String publicNo;

    @NotNull(message = "品牌状态不能为空")
    @ApiModelProperty(value = "品牌状态：false-启用，true-禁用", required = true, example = "false")
    private Boolean status;

    @ApiModelProperty(value = "品牌参数")
    private List<BrandParamVo> brandParamVos;

    @ApiModelProperty(value = "删除品牌参数ID集合，删除参数时ID参数存入字段")
    private List<Long> brandParamIds;

    @ApiModelProperty(value = "品牌介绍")
    private String describe;

    @ApiModelProperty(value = "创建时间", hidden = true)
    private Date createTime;
    @ApiModelProperty(value = "更新时间", hidden = true)
    private Date updateTime;

}
